// 1.定义单个选项类型
interface StatusOption{
    id:number; //状态选项的唯一标识
    name:string; //选项的显示名称
}

// 2.定义枚举对象（所有选项的合集）
export const StatusEnum={
    // 每个选项都是EnumOption类型
    All:{id:1,name:"所有状态"},
    Normal:{id:2,name:"正常"}
} as const;

// 3.提取枚举的键类型All,Normal
type StatusEnumKey=keyof typeof StatusEnum;

// 4.提取枚举的选项类型(所有选项的联合类型)
type StatusEnumOption = typeof StatusEnum[StatusEnumKey];

// 5. 获取所有选项（返回数组，用于下拉框渲染等场景）,并将函数暴露出去
export const getAllStatusOptions = (): StatusEnumOption [] => {
    // return Object.values(StatusEnum);
    return Object.values(StatusEnum);
};

// 6. 根据 id 查找对应的名称方法，并暴露出去
export const getStatusNameById = (id: number): string | undefined => {
    return Object.values(StatusEnum).find(option => option.id === id)?.name;
  };